package com.xuecheng.api.content;
import com.xuecheng.api.content.model.CourseBaseDTO;
import com.xuecheng.api.content.model.qo.QueryCourseModel;
import com.xuecheng.api.content.model.vo.CourseBaseVO;
import com.xuecheng.common.domain.page.PageRequestParams;
import com.xuecheng.common.domain.page.PageVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PathVariable;

/**
 * <p>
 *     课程基本信息Api接口
 * </p>
 *
 * @Description:
 */
@Api(value = "课程基本信息Api接口",tags = "内容-课程基本业务信息Api接口",description = "课程基本业务信息Api接口")
public interface CourseBaseApi {
    /**
     * 分页条件查询课程基本信息
     * @param params
     * @param model
     * @return
     */
    @ApiOperation("分页条件查询课程基本信息")
    PageVO queryCourseList(PageRequestParams params, QueryCourseModel model);

    /**
     * 添加课程基本信息
     * @param vo CourseBaseVO 封装的课程对象VO，接收前端数据
     * @return  CourseBaseDTO 封装的课程对象DTO，返回给前端的数据
     */
    @ApiOperation("添加课程基本信息")
    CourseBaseDTO  createCourseBase(CourseBaseVO vo);
    @ApiOperation("修改课程基本信息")
    //Long CourseBaseId
    CourseBaseDTO modifyCourseBase(CourseBaseVO vo);
    @ApiOperation("查询一条课程基本信息")
    CourseBaseDTO getCourseBase(Long courseBaseId);
    @ApiOperation("删除一条课程基本")
    void removeCourseBase(Long courseBaseId);
    @ApiOperation(value = "提交审核")
    @ApiImplicitParam(name = "courseBaseId", value = "课程ID", required = true, dataType =
            "Long", paramType = "query", example = "1")
    void commitCourseBase(Long courseBaseId);
    @ApiOperation(value = "课程预览")
    Object previewCourse(Long courseId,Long companyId);
    @ApiOperation(value = "课程发布")
     void publish(Long courseBaseId);

}
